# Array vs ArrayList vs LinkedList
์ธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ ๋ฌธ์ฅ์ผ๋ก ์ ์ํ๋ฉด ์๋์ ๊ฐ์ด ๋งํ ์ ์๋ค.
- Array๋ index๋ก ๋น ๋ฅด๊ฒ ๊ฐ์ ์ฐพ๋ ๊ฒ์ด ๊ฐ๋ฅํจ
- LinkedList๋ ๋ฐ์ดํฐ์ ์ฝ์ ๋ฐ ์ญ์ ๊ฐ ๋น ๋ฆ
- ArrayList๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋๋ฐ ๋น ๋ฅด์ง๋ง, ์ฝ์ ๋ฐ ์ญ์ ๊ฐ ๋๋ฆผ
์ข ๋ ์์ธํ ๋น๊ตํ๋ฉด?
์ฐ์ ๋ฐฐ์ด(Array)๋ ์ ์ธํ ๋ ํฌ๊ธฐ์ ๋ฐ์ดํฐ ํ์ ์ ์ง์ ํด์ผ ํ๋ค.
int arr[10];
String arr[5];
์ด์ฒ๋ผ, array์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ ์ฌ์ด์ฆ๋ฅผ ๋ฏธ๋ฆฌ ์ ํด๋๊ณ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ๋ค.
๋ฐ๋ผ์ ๊ณ์ ๋ฐ์ดํฐ๊ฐ ๋์ด๋ ๋, ์ต๋ ์ฌ์ด์ฆ๋ฅผ ์ ์ ์์ ๋๋ ์ฌ์ฉํ๊ธฐ์ ๋ถ์ ํฉํ๋ค.
๋ํ ์ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๊ฑฐ๋ ์ญ์ ํ ๋๋ ๋งค์ฐ ๋นํจ์จ์ ์ด๋ค.
4๋ฒ์งธ index ๊ฐ์ ์๋ก์ด ๊ฐ์ ๋ฃ์ด์ผ ํ๋ค๋ฉด? ์๋๊ฐ์ ๋ค๋ก ๋ฐ์ด๋ด๊ณ ํด๋น index์ ๋ฎ์ด์์์ผ ํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ด์ฆ๋ฅผ ์ ํด๋์ ๋ฐฐ์ด์์๋ ํด๊ฒฐํ๊ธฐ์ ๋ถ์ ํฉํ ์ ์ด ๋ง๋ค.
๋์ , ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด index๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์์น๋ฅผ ๋ฐ๋ก ์ ์ ์์ด ๊ฒ์์ ํธํ ์ฅ์ ์ด ์๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋์จ ๊ฒ์ด List๋ค.
List๋ array์ฒ๋ผ ํฌ๊ธฐ๋ฅผ ์ ํด์ฃผ์ง ์์๋ ๋๋ค. ๋์ array์์ index๊ฐ ์ค์ํ๋ค๋ฉด, List์์๋ ์์๊ฐ ์ค์ํ๋ค.
ํฌ๊ธฐ๊ฐ ์ ํด์ ธ์์ง ์๊ธฐ ๋๋ฌธ์, ์ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋๋ผ๋ array์์ ๊ฐ๊ณ ์๋ ๋ฌธ์ ์ ์ ํด๊ฒฐ ๊ฐ๋ฅํ๋ค. index๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ๊ฒ์๋ ๋น ๋ฅด๋ค.
ํ์ง๋ง, ์ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ ๋ฐ ์ญ์ ํ ๋ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๋ ๋จ์ ์ด ์กด์ฌํ๋ค. (๋ํ๊ฑฐ๋ ๋บ๋๋ง๋ค ์ค์ค์ด ๋น๊ฒจ์ง๊ฑฐ๋ ๋ฐ๋ ค๋ ๋ ์งํ๋๋ ์ฐ์ฐ์ด ์ถ๊ฐ, ๋ฉ๋ชจ๋ฆฌ๋ ๋ญ๋น..)
๊ทธ๋ ๋ค๋ฉด LinkedList๋?
์ฐ๊ฒฐ๋ฆฌ์คํธ์๋ ๋จ์ผ, ๋ค์ค ๋ฑ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
์ข ๋ฅ๊ฐ ๋ฌด์์ด๋ , ํ ๋ ธ๋์ ์ฐ๊ฒฐ๋ ๋ ธ๋์ ํฌ์ธํฐ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐฉ์์ผ๋ก ๋์ด์๋ค.
๋จ์ผ์ ๋ค์ ๋ ธ๋๋ง ๊ฐ๋ฆฌํค๊ณ , ๋ค์ค์ ์๋ค ๋ ธ๋๋ฅผ ๋ชจ๋ ๊ฐ๋ฆฌํค๋ ์ฐจ์ด
์ด๋ฐ ๋ฐฉ์์ ํ์ฉํ๋ฉด์, ๋ฐ์ดํฐ์ ์ค๊ฐ์ ์ฝ์ ๋ฐ ์ญ์ ๋ฅผ ํ๋๋ผ๋ ์ ์ฒด๋ฅผ ๋์ง ์์๋ ์ด์ ๊ฐ๊ณผ ๋ค์๊ฐ์ด ๊ฐ๋ฅด์ผฐ๋ ์ฃผ์๊ฐ๋ง ์์ ํ์ฌ ์ฐ๊ฒฐ์์ผ์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ฒ ์งํํ ์ ์๋ค.
์ด๋ ๊ฒ๋ง ๋ณด๋ฉด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ ๊ฐ์๋ณด์ด์ง๋ง, List์ k๋ฒ์งธ ๊ฐ์ ์ฐพ์๋ผ
์์๋ ๋นํจ์จ์ ์ด๋ค.
array๋ arrayList์์ index๋ฅผ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ฒ์์ด ๋น ๋ฅด์ง๋ง, LinkedList๋ ์ฒ์๋ถํฐ ์ดํด๋ด์ผํ๋ฏ๋ก(์์ฐจ) ๊ฒ์์ ์์ด์๋ ์๊ฐ์ด ๋ ๊ฑธ๋ฆฐ๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค.
๋ฐ๋ผ์ ์ํฉ์ ๋ง๊ฒ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์ ํํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํ๋ค.